<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>01_数据类型相关问题</title>
</head>
<body>
<!-- 
1、undefined与null的区别
    * undefined代表未定义赋值
    * null定义并赋值了只是值为null

2、什么时候给变量赋值为null
    * 初始赋值，表明将要赋值为对象
    * 结束前，让对象成为垃圾对象（被垃圾回收器回收）

3、严格区别变量类型与数据类型
    * 数据的类型
        * 基本类型
        * 对象类型

    * 变量的类型（变量内存值的类型）
        * 基本类型：保存的就是基本数据类型数据
        * 引用类型：保存的是地址值

-->
<script>
// 实例：实例对象
// 类型：类型对象
function Person(name, age) { // 构造函数
    this.name = name;
    this.age = age;
}

var p = new Person("Tom", 18); // 数据类型创建的实例对象
console.log(p);

// 1、undefined与null的区别
var a;
console.log(a); // undefined
a = null;
console.log(a); // null

// 起始
var b = null; // 初始赋值为null，表明将要赋值为对象
b = [1, 2, 3];
// 最后
b = null; // 让b指向的对象成为垃圾对象（让垃圾回收器回收）

</script>
</body>
</html>